﻿using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace Ver1.Controllers
{
    public class TaiKhoanController : Controller
    {
        //
        BanHang_Pallet db = new BanHang_Pallet();
        // GET: /TaiKhoan/
        public ActionResult Index()
        {
            return RedirectToAction("Index","Sanpham");
        }

        public ActionResult DangNhap()
        {
            return View();
        }
        [HttpPost]
        public ActionResult DangNhap(string Tendangnhap, string Matkhau)
        {

            try
            {
                List<Khachhang> kh = db.Khachhangs.Where(k => k.Tendangnhap == Tendangnhap && k.Matkhau==Matkhau).ToList();
                if (kh.Count<0)
                {
                    ModelState.AddModelError("", "Tên đăng nhập hoặc mật khẩu không chính xác");
                }
                else
                {
                    Session.Add("Tendangnhap", kh.First().Tendangnhap);
                    Session.Add("Tenkhachhang", kh.First().Tenkhachhang);
                    return RedirectToAction("Index", "SanPham");
                }
            }
            catch (Exception e)
            {
                ModelState.AddModelError("", "Tên đăng nhập hoặc mật khẩu không chính xác "/* + e.Message.ToString()*/);
            }
            
            return View();
        }

        [HttpGet]
        public ActionResult DangKy()
        {
            return View();
        }
        [HttpPost]
        public ActionResult DangKy(Khachhang model,string xacnhan)
        {
            //Khi dang nhap thanh cong thong bao cho Dang Nhap luon
            if (model.Matkhau!=xacnhan)
            {
                ModelState.AddModelError("","Mật khẩu và xác nhận mật khẩu không chính xác !!!!");
                //return View("DangKy","TaiKhoan");
            }
            else { 
                try
                {
                    db.Khachhangs.Add(model);
                    //Session.Add("Tenkhachhang", model.Tenkhachhang);
                    db.SaveChanges();
                    //ModelState.AddModelError("","alert('Đăng ký thành công')"+ Session["Tenkhachhang"]);
                    //Session["Tenkhachhang"] = model.Tenkhachhang;
                    //return View();
                    Session["Tendangnhap"] = model.Tendangnhap;
                    Session["Tenkhachhang"] = model.Tenkhachhang;
                    return RedirectToAction("Index","SanPham");
                }
                catch (Exception e)
                {
                    ModelState.AddModelError("", "Lỗi đăng ký khách hàng "+e.Message);
                }
            }
            return View();
        }

        public ActionResult DangXuat()
        {
            Session["Tendangnhap"] = "";
            Session["Tenkhachhang"] = "";
            return RedirectToAction("Index", "SanPham");
        }

        //QuenMatKhau
        public ActionResult QuenMatKhau()
        {
            return View();
        }

        [HttpPost]
        public ActionResult QuenMatKhau(string Tendangnhap, string Email)
        {
            try
            {
                
                List<Khachhang> kh = db.Khachhangs.Where(k => k.Tendangnhap == Tendangnhap && k.Email == Email).ToList();
                
                if (kh.Count>0)
                {
                    ////var khachhang = new Khachhang() { Id = kh.First().Id, Tendangnhap = kh.First().Tendangnhap, Matkhau = "123456",Email=kh.First().Email,Sodienthoai=kh.First().Sodienthoai,Diachi=kh.First().Diachi };
                    //Khachhang khachhang = db.Khachhangs.Create();
                    ////khachhang.Id = kh.First().Id;
                    //db.Khachhangs.Attach(khachhang);
                    //khachhang.Matkhau = "123456";
                    ////db.Entry(khachhang).Property(cus => cus.Matkhau).IsModified = true;

                    //Moi nhat
                    kh.First().Matkhau = "123456";

                    db.SaveChanges();
                    ModelState.AddModelError("", "Tài khoản ["+Tendangnhap+"]. Mật khẩu hiện tại là :123456. Vui lòng đổi lại mật khẩu để bảo vệ tài khoản");
                    return View();
                }
                else {
                    ModelState.AddModelError("", "Tên đăng nhập hoặc Email không tồn tại ");
                    }
            }
            catch (Exception e)
            {
                ModelState.AddModelError("","Tên đăng nhập hoặc Email không tồn tại "+ e.Message);
            }
            
            return View();
        }

        public ActionResult DoiMatKhau()
        {
            if (Session["Tendangnhap"] == "")
            {
                return RedirectToAction("Index", "Sanpham");
            }
            return View();
        }

        [HttpPost]
        public ActionResult DoiMatKhau(string Matkhau, string mkmoi, string xacnhan)
        {
            if (xacnhan == "" || mkmoi == "")
            {
                ModelState.AddModelError("", "Mật khẩu mới và xác nhận mật khẩu không được để trống");
            }
            if (mkmoi != xacnhan)
            {
                ModelState.AddModelError("", "Xác nhận mật khẩu không chính xác");
            }
            else
            {
                String dangnhap = Session["Tendangnhap"].ToString();
                List<Khachhang> kh =  db.Khachhangs.Where(k=>k.Tendangnhap == dangnhap).ToList();
                if (kh.Count>0 && kh.First().Matkhau==Matkhau)
                {
                    kh.First().Matkhau = xacnhan;
                    db.SaveChanges();
                    System.Web.HttpContext.Current.Response.Write("<script>alert('Đổi Mật Khẩu Thành Công !!!!!!!')</script>");
                    
                    //<SCRIPT LANGUAGE="'JavaScript'">alert('Hello this is an Alert')</SCRIPT>
                    ModelState.AddModelError("", "Đổi mật khẩu thành công");
                    return View("Index","Home");
                    
                    //return Json(JsonRequestBehavior.AllowGet);
                }
                else
                {
                    ModelState.AddModelError("", "Mật Khẩu Cũ Không Chính Xác");
                }

            }

            return View();
        }

        public ActionResult CapNhatTaiKhoan()
        {

            string dangnhap = Session["Tendangnhap"].ToString();
            if (Session["Tendangnhap"] == "")
            {
                return RedirectToAction("Index", "Sanpham");
            }
            List<Khachhang> kh = db.Khachhangs.Where(k => k.Tendangnhap==dangnhap).ToList();
            if (kh.Count>0)
            {
                var k = kh.First();
                return View(k);
            }
            else
            {
                ModelState.AddModelError("", "Không tồn tại tên đăng nhập này");
            }

            return View();
        }

        [HttpPost]
        public ActionResult CapNhatTaiKhoan(string Tenkhachhang, string Email, string Sodienthoai, string Diachi)
        {
            string Tendangnhap = Session["Tendangnhap"].ToString();
            var item = db.Khachhangs.Single(i => i.Tendangnhap == Tendangnhap);
            item.Tenkhachhang = Tenkhachhang;
            item.Email = Email;
            item.Sodienthoai = Sodienthoai;
            item.Diachi = Diachi;
            db.SaveChanges();
            ModelState.AddModelError("", "Cập nhật thông tin thành công");
            return View();
        }
	}
}